package Day002_final_static_接口.demo01final;

public class Test {
    public static void main(String[] args) {


    /*
    final： 不可改变。可以用于修饰类、方法和变量。
            类：  被修饰的类，不能被继承。
            方法：被修饰的方法，不能被重写。
            变量：被修饰的变量，只能赋值一次,不能被重新赋值。
     1.final修饰类:
            public final class 类名 {
            }

     2.final修饰方法:
            public final 返回值类型 方法名(参数列表) {
            }

     3.final修饰变量:
                final 数据类型 变量名 = 值;

            修饰局部变量:
                    基本数据类型:只能赋值一次,不能被重新赋值
                    引用数据类型:地址不能改变(不能再次new),属性可以改变

            修饰成员变量:
     4.特点:
             修饰的变量，只能赋值一次,不能被重新赋值
             被final修饰的常量名称，会变成常量,必须有值,一般字母都大写

     */

        final int i1 = 10;
        // i1 = 20; 编译报错,只能赋值一次

        final Student stu = new Student();
        System.out.println(stu);
        System.out.println(stu.name = "张三");
        System.out.println(stu);
        System.out.println(stu.name = "李四");
        //被final修饰的引用数据类型的局部变量,地址值不能改变,但是该变量中的属性值是可以改变的
    }
}